FOR ... TO ... NEXT
FOR ~ TO ~ NEXT 繰り返し実行(制御命令)
書式
FOR 変数 = 初期値 TO 最終値 実行文 NEXT 変数
FOR 変数 = 初期値 TO 最終値 STEP 増分 実行文 NEXT 変数
説明
変数を初期値から最終値まで増やし、FORからNEXTの間の実行文を繰り返し実行します。
変数が最終値に達した時点で繰り返しを止め、NEXTの次の命令の実行を行います。
STEPにて増分を指定しない場合、増分は1となります。
STEPを用いた場合は、マイナス値を含め任意の増分の指定が可能です。
例:
code:for_sample1.bas
10 PRINT "start."
20 FOR I=0 TO 5 STEP 2
30 PRINT I
40 NEXT I
50 PRINT "done."
実行結果:
code:for-sample2.bas
start
0
2
4
done.
ok
上記の例では変数Iを0から5まで、2ずつ増加して30行の実行文を繰り返し実行します。
変数Iが4の時、増分2を足すと終了値5を超えた6となるので繰り返しを終了し、50行を実行します。
FOR文はネスト(入れ子)も可能です(利用例を参照)。
FOR~NEXTの繰り返しは、利用している変数が繰り返し条件を満たさなくなった時点で繰り返しを終了します。
最初の例に35行 I=6を追加し、ループ内で条件を満たさなくすることでループを抜けることが出来ます。
例:
code:for_sample3.bas
10 PRINT "start."
20 FOR I=0 TO 5 STEP 2
30 PRINT I
35 I=6
40 NEXT I
50 PRINT "done."
実行結果:
code:for_sample4.bas
start
0
done.
ok
エラーメッセージ
Syntax error :文法エラー、書式と異なる利用を行った
FOR without variable :FOR文で変数を指定していない
FOR without TO :FOR文でTOを指定していない
NEXT without counter :NEXTに対応するFOR文が無い
FOR too many nested :FOR文のネスト数が規定数(=10)を超えた
Overflow :指定した数値が-32768 ~ 32767を超えている
利用例
画面の指定位置に*を表示する(FOR文のネストの例)
code:for_sample5.bas
10 CLS
20 FOR Y=5 TO 10
30 FOR X=5 TO 10
40 LOCATE X,Y:PRINT "*"
50 NEXT X
60 NEXT Y